/*Emamul Islam Emon.      Id No: 093-15-844

2)	Example of Binary Searech.*/

#include<stdio.h>
#define SIZE 7
int Bin_Search(int a[],int key,int low,int high);
void bubbleShort(int a[]);

int main()
{
	int a[SIZE]={4,8,56,25,14,9,11};
	int key;
	int found;

	printf("Enter the key value : ");  //A value which have to be found
	scanf("%d",&key);
    
	bubbleShort(a);
	found=Bin_Search(a,key,0,SIZE-1);
	
	if(found!=-1)
	{
		printf("Key found in position %d\n",found);
	}
	else
		printf("Key not found\n");
	return 0;
}


int Bin_Search(int a[],int key,int low,int high)

{
    
	int middle,mid_value;

	int found=0;

	while(low<=high && found!=1)
	{
		middle=(low+high)/2;
		mid_value=a[middle];

		if(mid_value<key)
			low=middle+1;
		
		else if(mid_value>key)
			high=middle-1;
		
		else 
		{
			found=1;
			return middle;         //Key is found here
		}
		
	}

	
	return -1;
}

void bubbleShort(int a[] )           //Arranging the array in assending order
{
	int pass,j,hold;

	for(pass=1;pass<SIZE;pass++)
	{
		for(j=1;j<SIZE-1;j++)
		{
			if(a[j]>a[j+1])
			{
				hold=a[j];
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                             
				a[j]=a[j+1];         //Swap element
				a[j+1]=hold;
			}
		}
	}
}

















































